package com.shujia.spark.core

import org.apache.spark.{SparkConf, SparkContext}

object Demo24collect {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local").setAppName("pr")
    val sc = new SparkContext(conf)

    //将scala集合转换成rdd
    val rdd = sc.parallelize(List(1, 2, 3, 4, 45, 56, 67))
    rdd.foreach(println)


    /**
      * collect  将RDD转换成scala集合，会将数据拉取到Driver的内存中
      * collect也是一个action算子，会触发任务执行
      *
      * 如果rdd数据量比较大，拉取到Driver端之后会导致Driver内存溢出
      *
      * collect  一般会在广播变量之前使用，  因为广播变量只能广播一个scala的集合或者对象 ，不能广播RDD
      *
      */

    val arr: Array[Int] = rdd.collect()


  }

}
